import pandas as pd
import matplotlib.pyplot as plt
import os

# 获取脚本所在目录并拼接文件路径
script_dir = os.path.dirname(os.path.abspath(__file__))
file_path = os.path.join(script_dir, 'FhjlViewDD.xlsx')

try:
    # 读取文件
    df = pd.read_excel(file_path)
    
    # 打印所有列名，帮助调试
    print("Excel文件中的列名：", df.columns.tolist())
    
    # 将创建日期转换为日期类型
    # 请根据实际列名修改这里的'创建日期'
    date_column = '创建时间'
    if date_column in df.columns:
        df[date_column] = pd.to_datetime(df[date_column])
        
        # 筛选6月份数据和矿粉相关数据
        june_data = df[(df[date_column].dt.month == 6) & (df.apply(lambda row: '矿粉' in str(row.values), axis=1))]
        
        # 按日期分组统计货运量
        # 请根据实际列名修改这里的'货运量'
        volume_column = '净重'
        if volume_column in june_data.columns:
            daily_trend = june_data.groupby(june_data[date_column].dt.day)[volume_column].sum()
            
            # 设置图片清晰度
            plt.rcParams['figure.dpi'] = 300
            
            # 设置中文字体
            plt.rcParams['font.sans-serif'] = ['SimHei']
            plt.rcParams['axes.unicode_minus'] = False
            
            # 绘制柱状图
            plt.figure(figsize=(12, 6))
            daily_trend.plot(kind='bar')
            plt.title('6月份每日矿粉货运量趋势')
            plt.xlabel('日期')
            plt.ylabel('货运量')
            plt.xticks(rotation=0)
            plt.tight_layout()
            
            # 显示图形
            plt.show()
        else:
            print(f'未找到{volume_column}列，请检查数据。可用列名：{df.columns.tolist()}')
    else:
        print(f'未找到{date_column}列，请检查数据。可用列名：{df.columns.tolist()}')

except FileNotFoundError:
    print(f'文件未找到，请确认{file_path}是否存在')
except Exception as e:
    print(f'发生错误：{str(e)}')